package com.xinsoft.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xinsoft.entity.dto.CusTestPointDTO;
import com.xinsoft.entity.dto.CusTestPointPageParam;
import com.xinsoft.entity.po.CusTestPoint;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xinsoft.entity.vo.CusDevTestPointVo;
import org.json.JSONObject;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
* @author hsm
* @description 针对表【cus_test_point(测点表)】的数据库操作Service
* @createDate 2023-07-06 17:52:41
*/
public interface CusTestPointService extends IService<CusTestPoint> {

    /**
     * 方法描述: [查询测点分页列表]
     * 初始作者: hsm
     * 创建时间:  2023
     * 开始版本:
     * =================================================
     * 修改记录：
     * 修改作者 日期 修改内容>
     * ================================================
     * param [cusTestPointParam]
     * return CusTestPointVo>
     */
    IPage<CusDevTestPointVo> findPageListByParam(CusTestPointPageParam param);

    List<CusDevTestPointVo> findListByParam(CusTestPointPageParam param);

    /**
     * 方法描述: [添加测点]
     * 初始作者: hsm
     * 创建时间:  2023
     * 开始版本:
     * =================================================
     * 修改记录：
     * 修改作者 日期 修改内容>
     * ================================================
     * param [cusTestPointDTO]
     * return com.socks.zhhc.core.system.user.entity.CusTestPoint
     */
    CusTestPoint addCusTestPoint(CusTestPointDTO cusTestPointDTO);

    /**
     * 方法描述: [添加测点]
     * 初始作者: hsm
     * 创建时间:  2023
     * 开始版本:
     * =================================================
     * 修改记录：
     * 修改作者 日期 修改内容>
     * ================================================
     * param [cusTestPointDTO]
     * return CusTestPoint
     */
    CusTestPoint editCusTestPoint(CusTestPointDTO cusTestPointDTO);

    /**
     * 方法描述: [删除测点信息]
     * 初始作者: hsm
     * 创建时间:  2023
     * 开始版本:
     * =================================================
     * 修改记录：
     * 修改作者 日期 修改内容>
     * ================================================
     * param [userName]
     * return java.lang.Boolean
     */
    void del(List<Integer> ids);

    /**
     * 方法描述: [获取测点]
     * 初始作者: hsm
     * 创建时间:  2023/04/20
     * 开始版本:
     * =================================================
     * 修改记录：
     * 修改作者 日期 修改内容>
     * ================================================
     * param [cusTestPoint]
     * return com.socks.zhhc.core.system.user.entity.CusTestPoint
     */
    CusDevTestPointVo getCusTestPoint(Integer id);


    IPage<CusDevTestPointVo> testPointListByRuleId(CusTestPointPageParam param);

    JSONObject importExcel(MultipartFile multipartFile) throws IOException;
}
